package com.allinpay.merchantweb.service;

import java.util.concurrent.TimeUnit;

import javax.servlet.http.HttpServletRequest;

import org.springframework.ui.Model;

import com.allinpay.merchantweb.redismodel.RedisData;

public interface RedisService {
    /**
     * 功能：缓存对象数据
     * 
     */
    void setRedisObjectData(String key, RedisData redisData, int inValidTime, TimeUnit unit);

    /**
     * 功能：缓存对象数据(永久有效)
     * 
     */
    void setRedisObjectData(String key, RedisData redisData);

    /**
     * 功能：获取缓存数据
     */
    RedisData getRedisObjectData(String key,RedisData redisDatatemp);
    
//    RedisData getRedisObjectData(String key);

    /**
     * 功能：缓存String数据
     * 
     */
    void setRedisStringData(String key, String redisData, int inValidTime, TimeUnit unit);

    /**
     * 功能：缓存String数据(永久有效)
     * 
     */
    void setRedisStringData(String key, String redisData);
//    /**
//     * 功能：缓存String数据(永久有效)
//     * 
//     */
//    void setRedisStringDataAll(String key, String redisData);

    /**
     * 功能：获取缓存数据
     * 1.key:user:userid:{appId}_{openId}    value:userId                有效期：30天
     * 2.key:user:userid:{loginName}         value:userId                有效期：30天
     * 3.key:user:publickey:{appId}          value:publicKey             有效期：永久有效
     * 4.key:user:appid:{appId}              value:appId                 有效期：永久有效
     * 5.key:user:opensslpublickey:{appId}   value:opensslpublicKey      有效期：永久有效
     * 
     */
    String getRedisStringData(String key);
    
    /**
     * 功能：缓存String数据(永久有效)
     * 
     */
    void DeLRedisStringData(String key);
//    /**
//     * 功能：缓存String数据(永久有效)
//     * 
//     */
//    void DeLRedisStringDataAll(String key);
    
    /**
     * 功能：缓存Object数据(永久有效)
     * 
     */
    void DeLRedisObjectData(String key);
    // ================================Map=================================
    /**
     * HashGet
     * 
     * @param key
     *            键 不能为null
     * @param item
     *            项 不能为null
     * @return 值
     */
    public Object hget(String key, String item);
    /**
     * 功能：是否在session里面
     * 
     */
    public  String isInSession(Model model, HttpServletRequest request);

 }
